<?php

/* Controller do Bolão para Administradores */

class administrador_BolaoController extends Zend_Controller_Action {

    private $_participantes;

    public function init() {
        /* Initialize action controller here */
        $this->_participantes = new Application_Model_GerenciadorParticipantesBolao();
    }

    public function indexAction() {
        // action body
    }

    public function criarAction() {
        //Um usuario comum ainda consegue acessar esse Action boloes aqui...
        $credencial = $this->_helper->logOn(true)->getEmail();

        $bolaoMapper = new Application_Model_BolaoMapper();

        $campeonatoMapper = new Application_Model_CampeonatoMapper();

        $jogoMapper = new Application_Model_JogoMapper();

        $formulario = new Administrador_Form_CriarBolao($campeonatoMapper, $jogoMapper);

        $request = $this->getRequest();

        if($request->isPost()) {
            $post = $request->getPost();

            $formulario = new Administrador_Form_CriarBolao($campeonatoMapper,
                    $jogoMapper, $post);

            if ($formulario->isValid($post)) {

                //setando valor para boloes importantes
                //importante => tinyint(1) na DB
                if($formulario->getValue('eImportante')) $eImportante = 1;
                else $eImportante = 0;

                //Todo bolao criado por admin tem o campo emailCriador == NULL
                $emailCriador = null;

                //Todo bolao criado por admin nao possui nome:
                $nomeDoBolao = null;

                //verificando se bolao sobre este jogo ja existe:
                $idJogo = $formulario->getValue('jogo');

                //O metodo jogoJaExiste retorna 0 se ainda nao ha bolao criado
                //pelo admin para o jogo em questao:

                if($bolaoMapper->jogoJaExiste($idJogo) != 0) {
                    //Erro: jogo ja cadastrado;
                    $this->view->sucesso = false;
                } else {
                    //Ok, jogo ainda nao cadastrado, prosseguindo
                    //com inserção no BD.
                    $bolao = new Application_Model_Bolao(
                            null,
                            $formulario->getValue('jogo'),
                            $nomeDoBolao,
                            $emailCriador,
                            $eImportante
                    );
                    $persistencia = new Application_Model_BolaoMapper();

                    $persistencia->salvar($bolao);

                    $this->view->sucesso = true;
                    $this->initView();

                }//fim if3


            }//fim if2

        }//fim if

        $this->view->form = $formulario;

    }//fim criarAction()


    
    public function visualizarAction()
    {
        $request = $this->getRequest();
        $inicio = $this->getRequest()->getParam('inicio', 0);
        $quantidade = $this->getRequest()->getParam('quantidade', 10);

        $this->view->total = $this->_participantes->getTotalJogosMaisApostados();
        $this->view->inicio = $inicio;
        $this->view->quantidade = $quantidade;
        $this->view->boloes = $this->recuperaBoloesAdm($inicio, $quantidade);
        
    }

    public function recuperaBoloesAdm($inicio, $quantidade) {
        $jogos = $this->_participantes->jogosAdm($inicio, $quantidade);

        //echo var_export($jogos);
        return $jogos;
    }

}

